package org.jeecg.modules.temporary.entity;


import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.UnsupportedEncodingException;
import java.util.Date;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @author XuYingnan
 * @since 2021-12-16 14:14:16
 */
@Data
@TableName("diy_temporary_applicant_info")
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="diy_temporary_applicant_info 对象", description="diy_temporary_applicant_info")
@Accessors(chain = true)
public class DiyTemporaryApplicantInfo extends Model<DiyTemporaryApplicantInfo> implements Serializable{
    private static final long serialVersionUID = -84213424732367132L;

    /**id**/
    @Excel(name = "id",width = 15)
    @TableField("id")
    @ApiModelProperty(value = "id")
    private String id;

    /**钉钉内部userid**/
    @Excel(name = "钉钉内部userid",width = 15)
    @TableField("ding_user_id")
    @ApiModelProperty(value = "钉钉内部userid")
    private String dingUserId;

    /**姓名**/
    @Excel(name = "姓名",width = 15)
    @TableField("professor_name")
    @ApiModelProperty(value = "姓名")
    private String professorName;

    /**性别**/
    @Excel(name = "性别",width = 15)
    @TableField("professor_sex")
    @ApiModelProperty(value = "性别")
    private Integer professorSex;

    /**毕业院校**/
    @Excel(name = "毕业院校",width = 15)
    @TableField("professor_school")
    @ApiModelProperty(value = "毕业院校")
    private String professorSchool;

    /**所学专业**/
    @Excel(name = "所学专业",width = 15)
    @TableField("professor_major")
    @ApiModelProperty(value = "所学专业")
    private String professorMajor;

    /**出生年月**/
    @Excel(name = "出生年月",width = 15)
    @TableField("professor_birthday")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "出生年月")
    private Date professorBirthday;

    /**学历**/
    @Excel(name = "学历",width = 15)
    @TableField("professor_education_background")
    @ApiModelProperty(value = "学历")
    private String professorEducationBackground;

    /**毕业时间**/
    @Excel(name = "毕业时间",width = 15)
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField("professor_graduate_date")
    @ApiModelProperty(value = "毕业时间")
    private Date professorGraduateDate;

    /**学位**/
    @Excel(name = "学位",width = 15)
    @TableField("professor_degree")
    @ApiModelProperty(value = "学位")
    private String professorDegree;

    /**工作单位**/
    @Excel(name = "工作单位",width = 15)
    @TableField("professor_work_unit")
    @ApiModelProperty(value = "工作单位")
    private String professorWorkUnit;

    /**通讯地址**/
    @Excel(name = "通讯地址",width = 15)
    @TableField("professor_address")
    @ApiModelProperty(value = "通讯地址")
    private String professorAddress;

    /**申报类别**/
    @Excel(name = "申报类别",width = 15)
    @TableField("professor_declare_category")
    @ApiModelProperty(value = "申报类别")
    private String professorDeclareCategory;

    /**职务**/
    @Excel(name = "职务",width = 15)
    @TableField("professor_position")
    @ApiModelProperty(value = "职务")
    private String professorPosition;

    /**参加工作时间**/
    @Excel(name = "参加工作时间",width = 15)
    @TableField("professor_begin_work")
    @ApiModelProperty(value = "参加工作时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date professorBeginWork;

    /**技术职称**/
    @Excel(name = "技术职称",width = 15)
    @TableField("professor_title")
    @ApiModelProperty(value = "技术职称")
    private String professorTitle;

    /**从事专业**/
    @Excel(name = "从事专业",width = 15)
    @TableField("professor_work_major")
    @ApiModelProperty(value = "从事专业")
    private String professorWorkMajor;

    /**从事专业时间**/
    @Excel(name = "从事专业时间",width = 15)
    @TableField("professor_major_date")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "从事专业时间")
    private Date professorMajorDate;

    /**身份证号**/
    @Excel(name = "身份证号",width = 15)
    @TableField("professor_identity")
    @ApiModelProperty(value = "身份证号")
    private String professorIdentity;

    /**家庭地址**/
    @Excel(name = "家庭地址",width = 15)
    @TableField("professor_home_address")
    @ApiModelProperty(value = "家庭地址")
    private String professorHomeAddress;

    /**健康状况**/
    @Excel(name = "健康状况",width = 15)
    @TableField("professor_health")
    @ApiModelProperty(value = "健康状况")
    private String professorHealth;

    /**办公电话**/
    @Excel(name = "办公电话",width = 15)
    @TableField("professor_office_tel")
    @ApiModelProperty(value = "办公电话")
    private String professorOfficeTel;

    /**手机**/
    @Excel(name = "手机",width = 15)
    @TableField("professor_phone")
    @ApiModelProperty(value = "手机")
    private String professorPhone;

    /**本人项目简介**/
    @Excel(name = "本人项目简介",width = 15)
    @TableField("professor_project_introduce")
    @ApiModelProperty(value = "本人项目简介")
    private String professorProjectIntroduce;

    /**业务主管 部门**/
    @Excel(name = "业务主管 部门",width = 15)
    @TableField("professor_lead_msg")
    @ApiModelProperty(value = "业务主管 部门")
    private String professorLeadMsg;

    /**行政审批局意见**/
    @Excel(name = "行政审批局意见",width = 15)
    @TableField("professor_approve_msg")
    @ApiModelProperty(value = "行政审批局意见")
    private String professorApproveMsg;


    /**创建人**/
    @Excel(name = "创建人",width = 15)
    @TableField("create_by")
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**创建日期**/
    @Excel(name = "创建日期",width = 15)
    @TableField("create_time")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;

    /**更新人**/
    @Excel(name = "更新人",width = 15)
    @TableField("update_by")
    @ApiModelProperty(value = "更新人")
    private String updateBy;

    /**更新日期**/
    @Excel(name = "更新日期",width = 15)
    @TableField("update_time")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;

    /**所属部门**/
    @Excel(name = "所属部门",width = 15)
    @TableField("sys_org_code")
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
    /**professorInfoPhoto*/
    @Excel(name = "professorInfoPhoto", width = 15)
    private transient String professorInfoPhotoString;

    private byte[] professorInfoPhoto;

    public byte[] getProfessorInfoPhoto(){
        if(professorInfoPhotoString==null){
            return null;
        }
        try {
            return professorInfoPhotoString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorInfoPhotoString(){
        if(professorInfoPhoto==null || professorInfoPhoto.length==0){
            return "";
        }
        try {
            return new String(professorInfoPhoto,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    /**照片*/
    @Excel(name = "照片", width = 15)
    private transient String professorPhotoString;

    private byte[] professorPhoto;

    public byte[] getProfessorPhoto(){
        if(professorPhotoString==null){
            return null;
        }
        try {
            return professorPhotoString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorPhotoString(){
        if(professorPhoto==null || professorPhoto.length==0){
            return "";
        }
        try {
            return new String(professorPhoto,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    /**个人承诺书*/
    @Excel(name = "个人承诺书", width = 15)
    private transient String professorCommitmentString;

    private byte[] professorCommitment;

    public byte[] getProfessorCommitment(){
        if(professorCommitmentString==null){
            return null;
        }
        try {
            return professorCommitmentString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorCommitmentString(){
        if(professorCommitment==null || professorCommitment.length==0){
            return "";
        }
        try {
            return new String(professorCommitment,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    /**学历、学位证书复印件*/
    @Excel(name = "学历、学位证书复印件", width = 15)
    private transient String professorDegreeImageString;

    private byte[] professorDegreeImage;

    public byte[] getProfessorDegreeImage(){
        if(professorDegreeImageString==null){
            return null;
        }
        try {
            return professorDegreeImageString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorDegreeImageString(){
        if(professorDegreeImage==null || professorDegreeImage.length==0){
            return "";
        }
        try {
            return new String(professorDegreeImage,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    /**个人工作简历*/
    @Excel(name = "个人工作简历", width = 15)
    private transient String professorResumeString;

    private byte[] professorResume;

    public byte[] getProfessorResume(){
        if(professorResumeString==null){
            return null;
        }
        try {
            return professorResumeString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorResumeString(){
        if(professorResume==null || professorResume.length==0){
            return "";
        }
        try {
            return new String(professorResume,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    /**专业资格职业证书复印件*/
    @Excel(name = "专业资格职业证书复印件", width = 15)
    private transient String professorQualificationString;

    private byte[] professorQualification;

    public byte[] getProfessorQualification(){
        if(professorQualificationString==null){
            return null;
        }
        try {
            return professorQualificationString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorQualificationString(){
        if(professorQualification==null || professorQualification.length==0){
            return "";
        }
        try {
            return new String(professorQualification,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    /**其他证明专业能力的材料*/
    @Excel(name = "其他证明专业能力的材料", width = 15)
    private transient String professorOtherString;

    private byte[] professorOther;

    public byte[] getProfessorOther(){
        if(professorOtherString==null){
            return null;
        }
        try {
            return professorOtherString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorOtherString(){
        if(professorOther==null || professorOther.length==0){
            return "";
        }
        try {
            return new String(professorOther,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
    /**身份证复印件*/
    @Excel(name = "身份证复印件", width = 15)
    private transient String professorIdString;

    private byte[] professorId;

    public byte[] getProfessorId(){
        if(professorIdString==null){
            return null;
        }
        try {
            return professorIdString.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getProfessorIdString(){
        if(professorId==null || professorId.length==0){
            return "";
        }
        try {
            return new String(professorId,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }
}
